<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 流年 <liu21st@gmail.com>
// +----------------------------------------------------------------------

// 应用公共文件
/**
 * 单图片上传
 * @param $name 文本域name
 * @return array
 */
function img_upload_one($name)
{
    $size     = \think\Config::get('img_size');
    $realsize = intval($size*1048576);
    $file     = request()->file($name);
    if ($file)
    {
        $info = $file
            ->validate(['size'=>$realsize,'ext'=>explode(' ', \think\Config::get('img_type'))])
            ->rule('date')
            ->move(ROOT_PATH . 'public' . DS . 'uploads' . DS .'images');
        if ($info)
        {
            $path     = $info->getSaveName();
            $new_path = str_replace('\\', '/', $path);
            return ['status'=>true, 'msg'=>'uploads/images/'.$new_path];
        } else {
            return ['status'=>false, 'msg'=>$file->getError()];
        }
    }
}

/**
 * 多图上传
 * @param $name
 * @return array
 */
function muti_img_upload($name)
{
    $size     = \think\Config::get('img_size');
    $realsize = intval($size*1048576);
    // 获取表单上传文件
    $files    = request()->file($name);
    $arr      = [];
    if ($files)
    {
        foreach($files as $file){
            // 移动到框架应用根目录/public/uploads/ 目录下
            $info = $file
                ->validate(['size'=>$realsize,'ext'=>explode(' ', \think\Config::get('img_type'))])
                ->rule('date')
                ->move(ROOT_PATH . 'public' . DS . 'uploads' . DS .'images');
            if($info){
                $filename = $info->getFilename();
                $path     = $info->getSaveName();
                $new_path = str_replace('\\', '/', $path);
                array_push($arr, ['name'=>$filename, 'path'=>'uploads/images/'.$new_path]);
            }else{
                return ['status'=>false, 'msg'=>$file->getError()];
            }
        }
        return ['status'=>true, 'msg'=>$arr];
    }
}

/**
 * 多文件上传
 * @param $name
 * @return array
 */
function muti_soft_upload($name)
{
    $size     = \think\Config::get('soft_size');
    $realsize = intval($size*1048576);
    // 获取表单上传文件
    $files    = request()->file($name);
    $arr      = [];
    if ($files)
    {
        foreach($files as $file){
            // 移动到框架应用根目录/public/uploads/ 目录下
            $info = $file
                ->validate(['size'=>$realsize,'ext'=>explode(' ', \think\Config::get('soft_type'))])
                ->rule('date')
                ->move(ROOT_PATH . 'public' . DS . 'uploads' . DS .'soft');
            if($info){
                $filename = $info->getFilename();
                $path     = $info->getSaveName();
                $new_path = str_replace('\\', '/', $path);
                array_push($arr, ['name'=>$filename, 'path'=>'uploads/soft/'.$new_path]);
            }else{
                return ['status'=>false, 'msg'=>$file->getError()];
            }
        }
        return ['status'=>true, 'msg'=>$arr];
    }
}

/**
 * 递归删除目录下所有文件
 * @param $path
 */
function deldir($path){
    //如果是目录则继续
    if(is_dir($path)){
        //扫描一个文件夹内的所有文件夹和文件并返回数组
        $p = scandir($path);
        foreach($p as $val){
            //排除目录中的.和..
            if($val !="." && $val !=".."){
                //如果是目录则递归子目录，继续操作
                if(is_dir($path.$val)){
                    //子目录中操作删除文件夹和文件
                    deldir($path.$val.'/');
                    //目录清空后删除空文件夹
                    @rmdir($path.$val.'/');
                }else{
                    //如果是文件直接删除
                    unlink($path.$val);
                }
            }
        }
    }
}